package com.cheys.webapp.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author 文件工具类
 *
 */
public class FileHelper {
	private BufferedReader br;

	public String getFileContent(String filepath){
		StringBuffer sb  = new StringBuffer();
		try {
			File file = new File(filepath);
			if(!file.exists()){
				LogUtil.getLogger().info(filepath+"不存在");
			}else{
				br = new BufferedReader(new FileReader(file));
				while(br.read() != -1){
					sb.append(br.readLine());
				}
			}
			br.close();
			return sb.toString();
		} catch (FileNotFoundException e) {
			LogUtil.getLogger().error("找不到文件["+filepath+"],异常信息："+e);
		} catch (IOException e) {
			LogUtil.getLogger().error("系统异常："+e);
		}
		return null;
	}
	/**
	 * 删除服务端文件
	 * @param filepath
	 */
	public static void delLocalFile(String filepath){
		long starttime = System.currentTimeMillis();
		LogUtil.getLogger().info("删除本地文件["+filepath+"]");
		File file = new File(filepath);
		if(!file.exists()){
			LogUtil.getLogger().info("文件不存在");
		}else{
			LogUtil.getLogger().info("成功删除文件");
			file.delete();
			if(file.exists()){
				delLocalFile(filepath);
				if(file.exists()){
					LogUtil.getLogger().debug("文件删除失败");
				}
			}else{
				LogUtil.getLogger().info("文件删除成功");
			}
		}
		LogUtil.getLogger().info("删除完成，共耗时["+(System.currentTimeMillis() - starttime)+"]ms");
	}
	/**
	 * 移动文件到指定目录
	 * 
	 * @param oldPath String 如：c:/fqf.txt
	 * @param newPath String 如：d:/fqf.txt
	 */
	public static String moveFile(String oldPath, String newPath,boolean delLocalFile) {
		File f = new File(oldPath);
		// 如果目标文件已存在的话会导致移动失败，修改：如果已存在就在目标文件后面加个日期 wangqun
		File newFile = new File(newPath);
		if (newFile.exists()) {
			if(delLocalFile){
				newFile.delete();
			} else {
				SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
				String dateStr = formatter.format(new Date());
				newPath = newPath + "." + dateStr;
			}
		}
		f.renameTo(new File(newPath));
		return newFile.getAbsolutePath();
	}
}
